Chiuso. Questa domanda non soddisfa le linee guida di Stack Overflow. Attualmente non accetta risposte. Vuoi migliorare questa domanda? Aggiorna la domanda in modo che sia in argomento per Stack Overflow. Chiuso 4 anni fa. Migliora questa domanda Sto creando un'app Shiny che elabora più file di testo selezionati da un utente. L'output è un enorme frame di dati con milioni di righe e decine di colonne. Sono interessato ora a consentire a un utente di filtrare in modo interattivo le righe, selezionare le colonne e riepilogare le colonne (scegliendo da un elenco di funzioni come media, sd, max, min, sum, ecc ...). Il risultato sarebbe un data frame più piccolo che riepiloga i dati per le selezioni utente - in pratica ho bisogno di creare una GUI che implementa una funzionalità di base della libreria dplyr. In generale, so come farlo creando manualmente un gruppo di elementi della GUI e inserendoli in una funzione server con una serie di comandi dplyr. Poiché questa sembra essere una funzionalità piuttosto standard (GUI che filtra e riassume un dataframe), prima di iniziare a costruirlo da zero, mi chiedo se c'è qualcosa "pronto all'uso" che posso usare COSÌ COM'È o come punto di partenza .
2021-02-22 08:13:39
So che hai detto che rpivotTable non era proprio quello che cercavi, ma penso che possa essere configurato per fare parte del lavoro pesante, Ecco un esempio (usando rpivotTable per la manipolazione, DT per mostrare data.frame, rvest per analizzare l'hTML interno dal DOM, potrebbe esserci un formato dati migliore per passare l'oggetto tabella dal lato client, ma questa è una prova del concetto ): ui.R libreria (brillante) libreria (DT) libreria (tabella rpivot) FullPage <- fluidPage ( DT :: dataTableOutput ('aSummaryTable'), rpivotTableOutput ('RESULTS') ) Pagina intera server.R: libreria (brillante) libreria (tabella rpivot) libreria (DT) biblioteca (rvest) funzione (input, output, session) { # Crea alcuni dati di esempio qbdata <- reattivo ({ expand.grid (LETTERE, 1: 3) }) # Pulisci l'html e memorizza come reattivo riepilogodf <- eventReactive (input $ myData, { input $ myData%>% read_html%>% html_table (fill = TRUE)%>% # Risulta che ci sono due tabelle in una tabella rpivot, vogliamo la seconda . [[2]] }) # mostra df come DT :: datatable output $ aSummaryTable <- DT :: renderDataTable ({ datatable (summarydf (), rownames = FALSE) }) # Ogni volta che la configurazione viene aggiornata, richiamare con il contenuto della tabella output $ RESULTS <- renderRpivotTable ({ rpivotTable ( qbdata (), onRefresh = htmlwidgets :: JS ("function (config) { Shiny.onInputChange ('myData', document.getElementById ('RESULTS'). InnerHTML); } ") ) }) } | Non è la risposta che stai cercando? Sfoglia altre domande contrassegnate con r dplyr shiny o fai la tua domanda.